home *** CD-ROM | disk | FTP | other *** search
/ Micromanía: 150 Juegos 2010 / 150Juegos_16.iso / Shareware / Shape Smash / shape-smash.swf / scripts / mx / controls / scrollClasses / ScrollThumb.as < prev   
Encoding:
Text File  |  2010-05-14  |  3.6 KB  |  118 lines

  1. package mx.controls.scrollClasses
  2. {
  3.    import flash.events.MouseEvent;
  4.    import flash.geom.Point;
  5.    import mx.controls.Button;
  6.    import mx.core.mx_internal;
  7.    import mx.events.ScrollEventDetail;
  8.    
  9.    use namespace mx_internal;
  10.    
  11.    public class ScrollThumb extends Button
  12.    {
  13.       mx_internal static const VERSION:String = "2.0.1.0";
  14.       
  15.       private var lastY:Number;
  16.       
  17.       private var datamax:Number;
  18.       
  19.       private var datamin:Number;
  20.       
  21.       private var ymax:Number;
  22.       
  23.       private var ymin:Number;
  24.       
  25.       public function ScrollThumb()
  26.       {
  27.          super();
  28.          explicitMinHeight = 10;
  29.          stickyHighlighting = true;
  30.       }
  31.       
  32.       private function mouseMoveHandler(param1:MouseEvent) : void
  33.       {
  34.          var _loc2_:Point = null;
  35.          var _loc3_:Number = NaN;
  36.          var _loc4_:ScrollBar = null;
  37.          var _loc5_:Number = NaN;
  38.          var _loc6_:Number = NaN;
  39.          if(ymin == ymax)
  40.          {
  41.             return;
  42.          }
  43.          _loc2_ = new Point(param1.stageX,param1.stageY);
  44.          _loc2_ = globalToLocal(_loc2_);
  45.          _loc3_ = _loc2_.y - lastY;
  46.          _loc3_ += y;
  47.          if(_loc3_ < ymin)
  48.          {
  49.             _loc3_ = ymin;
  50.          }
  51.          else if(_loc3_ > ymax)
  52.          {
  53.             _loc3_ = ymax;
  54.          }
  55.          _loc4_ = ScrollBar(parent);
  56.          _loc4_.mx_internal::isScrolling = true;
  57.          mx_internal::$y = _loc3_;
  58.          _loc5_ = _loc4_.scrollPosition;
  59.          _loc6_ = Math.round((datamax - datamin) * (y - ymin) / (ymax - ymin)) + datamin;
  60.          _loc4_.scrollPosition = _loc6_;
  61.          _loc4_.mx_internal::dispatchScrollEvent(_loc5_,ScrollEventDetail.THUMB_TRACK);
  62.       }
  63.       
  64.       override protected function measure() : void
  65.       {
  66.          super.measure();
  67.          measuredWidth = 14;
  68.          measuredHeight = 10;
  69.       }
  70.       
  71.       mx_internal function setRange(param1:Number, param2:Number, param3:Number, param4:Number) : void
  72.       {
  73.          this.ymin = param1;
  74.          this.ymax = param2;
  75.          this.datamin = param3;
  76.          this.datamax = param4;
  77.       }
  78.       
  79.       override protected function mouseDownHandler(param1:MouseEvent) : void
  80.       {
  81.          var _loc2_:ScrollBar = null;
  82.          super.mouseDownHandler(param1);
  83.          _loc2_ = ScrollBar(parent);
  84.          _loc2_.mx_internal::oldPosition = _loc2_.scrollPosition;
  85.          lastY = param1.localY;
  86.          systemManager.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler,true);
  87.          systemManager.stage.addEventListener(MouseEvent.MOUSE_MOVE,stage_mouseMoveHandler);
  88.       }
  89.       
  90.       override mx_internal function buttonReleased() : void
  91.       {
  92.          super.mx_internal::buttonReleased();
  93.          stopDragThumb();
  94.       }
  95.       
  96.       private function stopDragThumb() : void
  97.       {
  98.          var _loc1_:ScrollBar = null;
  99.          _loc1_ = ScrollBar(parent);
  100.          _loc1_.mx_internal::isScrolling = false;
  101.          _loc1_.mx_internal::dispatchScrollEvent(_loc1_.mx_internal::oldPosition,ScrollEventDetail.THUMB_POSITION);
  102.          _loc1_.mx_internal::oldPosition = NaN;
  103.          systemManager.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler,true);
  104.          systemManager.stage.removeEventListener(MouseEvent.MOUSE_MOVE,stage_mouseMoveHandler);
  105.       }
  106.       
  107.       private function stage_mouseMoveHandler(param1:MouseEvent) : void
  108.       {
  109.          if(param1.target != stage)
  110.          {
  111.             return;
  112.          }
  113.          mouseMoveHandler(param1);
  114.       }
  115.    }
  116. }
  117.  
  118.